home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 2 / United Public Domain Gold 2.iso / utilities / pu084.dms / pu084.adf / MemExp / mem.doc < prev    next >
Text File  |  1992-06-29  |  5KB  |  92 lines

  1. This document describes the operation and construction of a one megabyte
  2. memory board with optional battery backed up clock for the Amiga. You can
  3. also build a 512k memory by only populating one bank. I do not mention
  4. elsewhere that the software needs to be modified to match the new limits if
  5. you do this. 
  6.  
  7. The memory system consists of two banks of 256k words each. The banks are
  8. selected by the row address strobe (RAS) which is qualified by an address
  9. bit (A19) to select the bank. The upper and lower data strobes are used to
  10. generate seperate column address strobes (CAS) for the upper and lower
  11. bytes. Refresh is accomplished by activating the row address strobes for
  12. both banks while supplying a refresh address. Refresh cycles occur, if
  13. possible, when the memory is not being accessed (because some other resource
  14. is being addressed) or when necessary by holding off the processor to force
  15. time for the refresh cycle. All timing is derived from the 68000 clocks.
  16. This allows a fully synchronous design so that there are no glitches in
  17. timing possible. This also means that the processor must wait one clock
  18. cycle when it accesses this memory. The processor clock is simply too slow
  19. to go through the necessary states without the wait. If one eliminated the
  20. wait the system would be 20% faster. This would require a delay line or an
  21. asynchronous design. The cost of these alternatives is more than I was
  22. willing to pay. Also, the design would be harder to duplicate because of the
  23. more delicate timing.
  24. The clock is a Motorola MC146818. It keeps track of the date and time
  25. including daylight savings and leapyear. A nicad battery is charged by the
  26. Amiga when it is powered up. This battery runs the clock when the Amiga is
  27. off. As long as the Amiga is on 1% of the time, the clock will remain
  28. accurate.
  29.  
  30. This memory board does not autoconfigure. This means that the Amiga doesn't
  31. know about it until it is told. A program called AddMem is distributed on
  32. the assembler or C disks. This program is needed to tell the Amiga that the
  33. memory exists. I have not written a clone of this program. I have written a
  34. memory test program to test the board. It is included in this release.
  35.  
  36. At this time, a number of programs, including Deluxe Paint, do not work
  37. properly with external memory. I hope that as more Amigas get added memory
  38. the suppliers of these programs will fix the problems. Mostly, graphics
  39. objects cannot reside in external memory. If a graphics object is a program
  40. constant, the program must be chip memory resident. There is no way to do
  41. this within a language.  When a program allocates memory, it must specially
  42. ask for chip memory if needed because the operating system will allocate
  43. >from external memory if it can. If you want to use one of the programs that
  44. does not work with external memory, simply do not use the AddMem command.
  45. There is no need to remove the card. Amiga has released the ATOM program to
  46. developers which is used to tell the loader that some hunks must be loaded
  47. into chip memory. If you can get this program, it will fix the above
  48. problems.
  49.  
  50. The hardware clock isn't used by the Amiga during normal operation since it
  51. keeps its own internal clock. I have written a program to read the hardware
  52. clock and set the system clock (this is more trouble than I wanted). This
  53. program is also included in this release.
  54.  
  55. The easiest way to use these new resources is to modify your
  56. s/startup-sequence file to include:
  57.  
  58. AddMem 400000 500000
  59. Clock
  60.  
  61.  as added commands at the beginning. I also usually copy the entire system
  62. disk to ram: and reassign all the logicals to the copy in ram:. The system
  63. is very fast when running entirely out of ram.
  64.  
  65. I wirewrapped the memory since I expected to make changes. It took three
  66. tries before the control circuit worked well. There were a number of pins
  67. that were essentially undocumented and I had little choice but to try things
  68. until they worked. Because this design has no support from Amiga, I cannot
  69. guarantee that it works with your machine. On the other hand, I design
  70. memories (and other things) for a living. I know what I'm doing. The design
  71. is very forgiving of small timing changes (another reason to keep it slow)
  72. and I do not expect anyone to have problems. I have no intention of
  73. supplying a PC board. I don't mind if someone else takes on that project as
  74. long as it is non-commercial. (If you are interested in a commercial design
  75. let me know, I would do many things differently if it were a high quantity
  76. commercial product. This design is bent in the direction of ease of
  77. duplication with no special parts.)
  78.  
  79. There are four additional files I will mention here. The mechanical
  80. description is in mem.mechanical. This includes the connector and board info
  81. and the chip socket locations. Some comments on construction are also
  82. included. The parts list is in mem.parts. The parts given will work.
  83. Substitutions are possible, but at your own risk. The schematic is in
  84. mem.schematic and clock.schematic (this section can be built at a later
  85. time.) This is not the most beautiful method of drawing schematics,
  86. but it allows this project to be electronically documented so it can reach a
  87. lot of people without the 10th generation xerox problem. The schematic files
  88. look best if printed at eight lines per inch.
  89.  
  90.  
  91.  
  92.